
$(function(){

    // 全选不选
    $('.allsel').on('change', function (){

        //获取当前的选中状态
        let bool = $(this).prop('checked')
        
        //其他未选中的
        $('.sinsel, .allsel').prop('checked', bool)

        //总计
        total()
    
    })
    
    
    //购物车内有一个未选中就取消全选
    $('.sinsel').on('change',function(){

        //获取商品的总个数
        let alllen = $('.sinsel').length

        // 获取选中商品的个数
        let checklen = $('.sinsel:checked').length

        //判断
        if(checklen < alllen){
            $('.allsel').prop('checked',false)
        }else{
            $('.allsel').prop('checked',true)
        }

        //总计
        total()
    })

    
    //商品数量增加
    $('.add').on('click',function(){

        let num = $(this).siblings('.pronum').val()

        $(this).siblings('.pronum').val(++num)

        //小计
        subtotal(this,num)

        //总计
        total()
    })

    
    //商品数量减少
    $('.reduce').on('click',function(){

        let num = $(this).siblings('.pronum').val()

        //判断商品数量
        if(num < 2){
            return
        }

        $(this).siblings('.pronum').val(--num)

        //小计
        subtotal(this,num)

        //总计
        total()
    })

    
    // 小计
    function subtotal(obj,cnum){

        //获取当前商品的单价
        let sinprice = $(obj).closest('.shopcar-body').find('.sinprice').html()
    
        //赋值
        $(obj).closest('.shopcar-body').find('.smallprice').html( (sinprice * cnum ).toFixed(2) );
    }

    
    //计算总价 总数量  计算选中商品的总价 和 总数量

    function total(){

    //定义变量保存总价
    let totalPrice = 0;

    //定义变量保存总数量
    let totalNum = 0;

    //选中商品
    $('.sinsel:checked').each(function (index, item){

      //获取每个商品的小计
      let subTotalPrice = parseFloat( $(item).closest('.shopcar-body').find('.smallprice').html() );
      
      //累加总价
      totalPrice += subTotalPrice;

      //获取每个商品的数量
      let subTotalNum = parseInt( $(item).closest('.shopcar-body').find('.pronum').val() );
      
      //累加总数量
      totalNum += subTotalNum
    })

    //得到总价并渲染到页面中
    $('.allPrice').html( totalPrice.toFixed(2) );

    //得到总数量并渲染到页面中
    $('.allNum').html( totalNum )

    }   

})